public class code3s {
    // 未超时版本，优化掉了一层 for 循环，直接通过 while 循环进行实现

    public int[] twoSum(int[] numbers, int target) {
        int low = 0, high = numbers.length - 1;
        // 上一段代码使用了 for 循环嵌套了 while 导致时间改过高
        // 官方题解直接通过一个 while 循环解决了问题
        // 解题的思路都是相同的，都是通过双指针的形式解决
        while (low < high) {
            int sum = numbers[low] + numbers[high];
            if (sum == target) {
                return new int[]{low + 1, high + 1};
            } else if (sum < target) {
                ++low;
            } else {
                --high;
            }
        }
        return new int[]{-1, -1};
    }
}
